﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;

namespace UploadPlugin.Models
{
    public class FileUpload
    {
        /// <summary>
        /// Загрузить файл (или его часть) на сервер.
        /// </summary>
        /// <param name="file">загружаемый файл</param>
        /// <param name="fullName">полный путь к загружаемому файлу</param>
        /// <param name="isPartial">часть файла - true, целый файл - false</param>
        public static void Upload(Stream file, string fullName, bool isPartial = false)
        {
            if (!String.IsNullOrEmpty(fullName))
            {
                FileMode mode = isPartial ? FileMode.Append : FileMode.Create;
                using (var fs = new FileStream(fullName, mode, FileAccess.Write))
                {
                    var buffer = new byte[1024];
                    var l = file.Read(buffer, 0, 1024);
                    while (l > 0)
                    {
                        fs.Write(buffer, 0, l);
                        l = file.Read(buffer, 0, 1024);
                    }
                }
            }
        }
    }
}